Самый простой способ автоматизировать задачу - просто записать макрос, и VBA сделает всю работу за Вас. Этим способом создания макросов мы будем пользоваться достаточно часто. Те мне менее, чтобы реализовать все возможности языка VBA, придется воспользоваться некоторыми средствами программирования, т.е. придется писать собственные макросы.Преимущества создания макросов на основе уже записанных:
1. Если при записи большого макроса с огромным количеством операций Вы сделаете ошибку, можно будет отредактировать макрос и исправить ошибку. При этом не нужно перезаписывать весь макрос с самого начала.
2. Вы будете иметь полный контроль над каждым макросом. Другими словами, Вы удостоверитесь, что ваши макросы выполняют в точности те действия, которые им положено выполнять.
3. Можно воспользоваться скрытыми возможностями языка VBA для управления программами пакета Office, которые недоступны при автоматической записи макросов. Кроме того, вручную можно написать более профессиональные и эффективные подпрограммы.
Чтобы отобразить на экран редактор Visual Basic, в любом приложении Office выберите команду Сервис=>Макрос=>Редактор Visual Basic.
Редактор Visual Basic является отдельной программой, которая была разработана с единственной целью - помочь вам в создании и редактировании макросов VBA. (В профессиональных программистских кругах редактор Visual Basic называют интегрированной средой разработки).
При первом открытии редактора Вы ничего особенного не увидите. В левой части редактора содержится два окна, которые называются Project (Проект) и Properties (Свойства). В окне Project отображается содержимое текущего проекта VBA. Если говорить просто, проектом называется файл любого приложения Office и все связанные с ним элементы VBA, включая макросы и пользовательские формы.
Редактор Visual Basic можно открыть, нажав комбинацию клавиш “Alt+F11″. С помощью этой комбинации клавиш также можно переключаться между редактором и приложением, из которого он был вызван.
Чтобы сто-то сделать в редакторе Visual Basic, сначала, как правило, нужно открыть модуль - элемент VBA, который содержит один или несколько макросов.
Чтобы открыть модуль, выполните следующие действия:
1. В окне Project раскройте папку Modules (Модули). Для этого щелкните на знаке «плюс (+)», который расположен слева от этой папки.
2. Дважды щелкните на имени модуля, который нужно открыть.
Object list (список объектов). В этом списке, расположенном слева, отображаются названия доступных объектов для того элемента проекта, с которым Вы работаете. Модули не могут содержать объектов, поэтому этот список включает только элемент (General), т.е. «общий».
Procedure list (Список процедур). Данный список расположен справа и содержит названия тех процедур и функций, которые входят в модуль. При выборе элемента из этого списка в окне модуля редактор отобразит выбранный элемент.
Если у Вас нет созданного ранее макроса, выполните команду Insert=>Module (Вставка>Модуль). Редактор Visual Basic присвоит этому модулю стандартное имя, такое как Module1 или Module2, но его можно переименовать в любое время.
Запись макросов имеет некоторые ограничения, поскольку есть множество средств, доступ к которым нельзя получить с помощью мыши, клавиатуры или команд меню. Например, для работы с Excel VBA имеет несколько десятков информационных функций, которые возвращают данные о ячейках, рабочих листах, рабочем пространстве и о многом другом. Кроме того, VBA позволяет создавать программные структуры управления, такие как циклы, ветвления и другие.
Чтобы получить доступ к этим элементам макросов, придется писать собственные подпрограммы VBA с самого начал. Это занятие на самом деле проще, чем может показаться, так как все, что нужно сделать - ввести несколько операторов в модуль.
Открыв и активизировав окно модуля, выполните следующие действия, чтобы написать командный макрос:
1. Поместите курсор в ту часть модуля, где Вы хотите начать запись макроса (Убедитесь, что курсор не находится внутри уже созданного макроса).
2. Если хотите начать макрос с некоторых заметок (программисты называют их комментариями), в которых будет описано, что делает макрос, введите символ апострофа ‘ в начале каждой строки комментария.
3. Чтобы начать макрос, введите ключевое слово Sub, после чего введите пробел и название макроса. Название может состоять только из букв, цифр и символов подчеркивания «_». Использование в имени макроса пробелов и других символов не допускается.
4. Нажмите клавишу “Enter”. Редактор автоматически добавит пару скобок в конце имени макроса. Он также добавит строку с текстом End Sub, чтобы обозначить конец процедуры.
5. Между строками Sub и End Sub введите операторы VBA, которые необходимо включить в макрос.
Чтобы код было проще читать, для каждого оператора следует делать отступ. Для этого в начале строки нажмите клавишу “Tab”. (Но не делайте этого для строк Sub и End Sub). Удобно, что редактор сохраняет отступы для последующих строк, поэтому вручную нужно задать отступ только для первой строки.
Каждый раз когда Вы нажимаете клавишу , чтобы перейти на новую строку, редактор проверяет введенную строку и выполняет три действия:
1. Каждое слово в строке форматируется цветом: по умолчанию ключевые слова VBA выделяются синим цветом, комментарии - зеленым, ошибки красным, а любой другой текст остается черным.
2. Ключевые слова VBA преобразуются в соответствующий регистр. Например, если Вы введете end sub, то после нажатия клавиши “Enter” редактор преобразует эту запись в End Sub.
3. Редактор проверяет строку на наличие синтаксических ошибок. К таким ошибкам относятся опечатки в словах, неправильно введенные функции и т.д. Редактор оповещает о таких ошибках. Он либо выводит диалоговое окно, в котором показана ошибка, либо просто не преобразует слова в соответствующий регистр не изменяет цвет текста.
Если вводить все ключевые слова VBA только строчными буквами, то можно обнаружить опечатки. Для этого после перехода на новую строку посмотрите на предыдущую - имеются ли на ней ключевые слова, которые редактор не распознал (т.е. ключевые слова которые остались в нижнем регистре).
Выполним простой пример:
1. Введите sub Привет_Мир и нажмите клавишу “Enter”.
2. Нажмите клавишу “Tab” и введите msgbox “Привет, мир VBA!” и нажмите “Enter”.
Из любого приложения пакета Office макрос можно запустить несколькими способами, но ниже представлены два способа:
1. В модуле установите курсор в любом месте макроса и затем выберите команду Run=>Run Sub/UserForm (Выполнить>Выполнить подпрограмму/Пользовательскую форму) или нажмите F5.
2. В приложении Office выполните команду Сервис=>Макрос=>Макросы (Или нажмите комбинацию клавиш “ALT+F8″), отобразится диалоговое окно «Макрос». Если нужно, воспользуйтесь раскрывающимся списком «Макросы из», чтобы выбрать документ, в котором находится нужный макрос и щелкните на кнопке «Выполнить».
Если запустить макрос, созданный нами ранее, то на экране появится диалоговое окно, в котором будет содержаться текст «Привет, мир VBA!». Щелкните на кнопке ОК, чтобы закрыть это окно.